/*******************************************************************************
 * Copyright (c) 2008 Sylvain Sicard.
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the GNU Lesser Public License v2.1
 * which accompanies this distribution, and is available at
 * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
 * 
 * Contributors:
 *     Noel De Palma - initial API and implementation
 ******************************************************************************/
package fr.jade.service.nodes.factory;

import org.objectweb.fractal.api.Component;
import org.objectweb.fractal.api.factory.InstantiationException;

/**
 * A component interface to create remote generic factory.
 * @author Noel De Palma
 * @contact noel.depalma@inrialpes.fr
 */
public interface NodeFactory {

  /**
   * Instantiates a new generic factory on the remote pnode passed as parameter.
   *
   * @param pnode the physical node where to create the new generic factory.
   * @param vnode the virtual node mapped to the physical node.
   * @return the {@link Component} interface of the component instantiated from
   *      this factory.
   * @throws InstantiationException if the component cannot be created.
   */
  Component newNode (String pnode, String vnode) throws InstantiationException;
  
}
